[코담]
웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트
문제 쇼핑몰 장바구니 시뮬레이션 | ✅저자: 이유정(박사)
🖥️ 프로젝트 개요:
클래스를 활용해 상품 등록, 장바구니 추가, 총합 계산 기능을 포함한 간단한 쇼핑몰 시뮬레이션을 구현합니다.
◽ 이 프로젝트를 통해 자연스럽게 적용되는 내용:
- 클래스 간 관계(객체 포함 구조)
- 딕셔너리와 리스트 활용
- 함수와 메서드 혼합 사용
- 클래스 메서드 호출 및 데이터 저장
- 조건문, 반복문, 포맷 출력 활용
📄 기능 요구사항 (Functional Requirements):
- Product 클래스: 상품 이름, 가격
- Cart 클래스: 장바구니에 상품과 수량을 저장
add_product(product, qty)
메서드로 상품 추가get_total()
로 총 금액 반환- 장바구니 상품 목록 출력
📄 비기능 요구사항 (Non-Functional Requirements):
Cart
클래스 내부에 상품 목록을 딕셔너리로 저장 ({product_obj: qty}
)- 출력 시 가격에 콤마(,) 단위 표시, 총합은
₩
단위로 표기 - 객체 지향적인 코드 구조 유지
🖨️ 출력 포맷 구성:
🛒 장바구니 내역:
- 티셔츠 x 2개 = 30,000원
- 바지 x 1개 = 25,000원
총 합계: ₩55,000
✅ 정답코드:
class Product:
def __init__(self, name, price):
self.name = name
self.price = price
class Cart:
def __init__(self):
self.items = {}
def add_product(self, product, qty):
if product in self.items:
self.items[product] += qty
else:
self.items[product] = qty
def get_total(self):
return sum(p.price * q for p, q in self.items.items())
def show_cart(self):
print("🛒 장바구니 내역:")
for product, qty in self.items.items():
total_price = product.price * qty
print(f"-{product.name} x {qty}개 = {total_price:,}원")
print(f"총 합계: ₩{self.get_total():,}")
# 상품 정의
shirt = Product("티셔츠", 15000)
pants = Product("바지", 25000)
# 장바구니 생성 및 추가
cart = Cart()
cart.add_product(shirt, 2)
cart.add_product(pants, 1)
# 결과 출력
cart.show_cart()
🔍 코드 해설:
Product
는 상품 정보를 관리Cart
는 상품 객체를 키로 사용해 수량을 저장get_total()
은 장바구니 전체 금액 계산show_cart()
는 품목과 총합을 포맷팅하여 출력